package com.ccrfid.rmc6.util;

import java.util.ArrayList;
import java.util.List;

public class DownLinkUtil {
    public static List<Integer> getInitValue(int cmd, int seq,int cardType,int length) {
        List<Integer> value = new ArrayList<>();
        value.add(cmd);
        int seq1 = (seq >>> 8) & 0xFF;
        int seq2 = seq & 0xFF;
        value.add(seq1);
        value.add(seq2);
        value.add(cardType);
        value.add(length);
        return value;
    }

    public static List<Integer> getEncodeValue(byte[] data, String charset) {
        List<Integer> value = new ArrayList<>();
        int startIdx = charset.equals("utf16") ? 2 : 0;
        for (int i = startIdx; i < data.length; i++) {
            value.add(data[i] & 0xFF);
        }
        return value;
    }


    public static List<Integer> getEncodeValue(int cmd, int seq, int bindStatus, byte[] data, String charset) {
        List<Integer> value = new ArrayList<>();
        value.add(cmd);
        int seq1 = (seq >>> 8) & 0xFF;
        int seq2 = seq & 0xFF;
        value.add(seq1);
        value.add(seq2);
        value.add(bindStatus);
        int startIdx = charset.equals("utf16") ? 2 : 0;
        for (int i = startIdx; i < data.length; i++) {
            value.add(data[i] & 0xFF);
        }
        return value;
    }
}
